package br.com.rotaestatistica.daos;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.faces.model.SelectItem;

import br.com.rotaestatistica.entities.LotacaoEntity;
import br.com.rotaestatistica.utils.FabricaDeConexao;

public class LotacaoDAO extends FactoryDAO {

	public List<LotacaoEntity> selectAllLotacoesAsList() {
		List<LotacaoEntity> list = new ArrayList<LotacaoEntity>();
		PreparedStatement pstm = null;
		ResultSet rs = null;

		String SQL = "SELECT * FROM lotacao";

		try {
			pstm = FabricaDeConexao.getConexao().prepareStatement(SQL);

			rs = pstm.executeQuery();
			while (rs.next()) {
				LotacaoEntity lotacao = new LotacaoEntity();

				lotacao.setId_Lotacao(rs.getLong("idlotacao"));
				lotacao.setNome(rs.getString("nome"));
				lotacao.setDescricao(rs.getString("descricao"));
				

				list.add(lotacao);
			}
			return list;
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		} finally {
			try {
				rs.close();
				pstm.close();
				FabricaDeConexao.fechaConexao();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

	public LotacaoEntity selectLotacaoById(long idLotacao) {
		LotacaoEntity lotacao = new LotacaoEntity();
		PreparedStatement pstm = null;
		ResultSet rs = null;

		String SQL = "SELECT * FROM lotacao WHERE idLotacao = ?";

		try {
			pstm = FabricaDeConexao.getConexao().prepareStatement(SQL);
			pstm.setLong(1, idLotacao);
			rs = pstm.executeQuery();
			while (rs.next()) {
				lotacao.setId_Lotacao(rs.getLong("idlotacao"));
				lotacao.setNome(rs.getString("nome"));
				lotacao.setDescricao(rs.getString("descricao"));
			}
			return lotacao;
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		} finally {
			try {
				rs.close();
				pstm.close();
				FabricaDeConexao.fechaConexao();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	public List<SelectItem> getAllLotacoesAsSelectItems() {
		
		List<LotacaoEntity> lotacoes = new ArrayList<LotacaoEntity>();
		lotacoes = selectAllLotacoesAsList();
		
		List<SelectItem> lotacoesAsSelectItems = new ArrayList<SelectItem>();
		
		for (LotacaoEntity lotacao : lotacoes) {
			lotacoesAsSelectItems.add(new SelectItem(lotacao.getId_Lotacao(), lotacao.getNome()));
		}
		
		return lotacoesAsSelectItems;
	}

	/*
	public boolean insertLotacao(LotacaoEntity lotacao) {

	}

	public boolean deleteLotacaoById(long idLotacao) {

	}

	public boolean updateLotacao(LotacaoEntity lotacao) {

	}
*/
}
